专利摘要:
N点MDCT変換をより小さいサイズのN/2点DCT−IV、DST−IVおよび/またはDCT−II変換にマッピングする、より効率的なエンコーダ/デコーダを提供する。オーディオコーデックにおける多くの既存のMDCT設計で使用されるDCT−IVまたはFFTコアとは反対に、一様にスケーリングされた5点DCT−IIコア関数を利用することによって、MDCTを2分の1に系統的にデシメートすることができる。5点変換の様々な変換の因数分解を実装して、変換をより効率的に実装することができる。
公开号:JP2011507037A
申请号:JP2010538219
申请日:2008-12-13
公开日:2011-03-03
发明作者:チブクラ、ラビ・キラン;レズニク、ユリー
申请人:クゥアルコム・インコーポレイテッドQualcomm Incorporated;
IPC主号:G10L11-00
专利说明:

[0001] 米国特許法第119条に基づく優先権の主張
本特許出願は、両方とも本出願の譲受人に譲渡され、参照により本明細書に明白に組み込まれる、2007年12月13日に出願された「Fast Algorithms for Computation of 5-Point DCT-II, DCT-IV, and DST-V, and Architecture for Design of Transforms of Size N=5*2K」と題する米国特許仮出願第61/013,579号、および2008年3月25日に出願された「G.EV-VBR MDCT Module」と題する米国特許仮出願第61/039,194号の優先権を主張する。]
[0002] 以下の説明は、一般に、エンコーダおよびデコーダに関し、特に、ボイスおよびオーディオコーデックのための効率的なMDCT/IMDCT実装(implementation)に関する。]
背景技術

[0003] オーディオコーディングの1つの目的は、元のサウンド品質をできる限り保ちながら、オーディオ信号を所望の限られた情報量に圧縮することである。符号化プロセスでは、時間領域におけるオーディオ信号を周波数領域に変換し、対応する復号プロセスでは、そのような演算を逆算する。]
[0004] そのような符号化プロセスの一部として、モディファイド離散コサイン変換(MDCT)によって信号を処理することができる。モディファイド離散コサイン変換(MDCT)は、タイプIVの離散コサイン変換(DCT−IV)に基づくフーリエ関連の変換であり、あるブロックの終了が次のブロックの開始と一致するように複数のブロックが重なるという追加の特性をもつ。この重なりは、エイリアシングアーティファクトを回避するのに役立ち、DCTのエネルギー圧縮品質に加えて、特に信号圧縮の適用例にとってMDCTを魅力的にする。]
[0005] ボコーダは、10あるいは20ミリセコンドフレームおよび、8kHzあるいは16kHzのいずれかの入力サンプリングレートで動作する。それゆえ、それらのMDCTフィルタバンクは、160あるいは320点の変換となる。]
[0006] しかしながら、将来のスピーチコーダがブロックスイッチング機能をサポートするようになれば、デシメートされたサイズ(たとえば、160、80、40点)のサポートも必要になることがある。したがって、小さいサイズのコア変換を使用してより大きい変換を実装するためには、小さい変換サイズの効率的な実装が望ましい。]
[0007] 以下で、いくつかの実施形態の基本的な理解を与えるために、1つまたは複数の実施形態の簡単な概要について説明する。この概要は、すべての企図される実施形態の包括的な概観ではなく、すべての実施形態の主要または重要な要素を識別するものでも、いずれかまたはすべての実施形態の範囲を定めるものでもない。その唯一の目的は、後で提示するより詳細な説明の導入として、1つまたは複数の実施形態のいくつかの概念を簡略化された形式で提示することである。]
[0008] 変換値を計算するための符号化方法および/またはデバイスを提供する。オーディオ信号を表す時間領域入力値を受信する。複数の5点変換に再帰的にデシメートされるモディファイド離散コサイン変換(MDCT)を使用して、入力値をスペクトル係数に変換する。5点変換を効率的に処理するために、様々な因数分解を実装することができる。]
[0009] 一例(図5)では、複数の5点変換のうちの少なくとも1つは、12回加算演算、8回乗算演算、および3回演算の最長経路長によって因数分解される、少なくとも1つの離散コサイン変換タイプII(DCT−II)(502)を含むことができる。たとえば、複数の5点変換のうちの少なくとも1つは、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(502)を含む。] 図5
[0010] w0=x0−x4、
w4=x0+x4、
w1=x1−x3、
w3=x1+x3、
u2=x2+w3+w4、
u3=−d*w3+c*w4、
u4=d*w4+c*w3、
ここで、
X0=u2、
X1=b*w1+a*w0、
X2=u3−x0、
X3=a*w1−b*w0、
X4=u4+x0、
上式で、]
[0011] である。]
[0012] 別の例(図6)では、複数の5点変換のうちの少なくとも1つは、12回加算演算、5回乗算演算、2回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの離散コサイン変換タイプII(DCT−II)(602)を含む。たとえば、複数の5点変換のうちの少なくとも1つは、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(602)を含む。] 図6
[0013] w0=x0−x4、
w1=x1−x3、
z2=x1+x3、
z4=x0+x4、
u2=z2+z4、
ここで、
X0=u2+x2、
X1=b*w1+a*w0、
X2=c*u2+0.5*z2−x2、
X3=a*w1−b*w0、
X4==−c*u2−0.5*z4+x2、
上式で、]
[0014] である。]
[0015] 別の例(図7)では、複数の5点変換のうちの少なくとも1つは、12回加算演算、5回乗算演算、1回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの離散コサイン変換タイプII(DCT−II)(702)を含むことができる。たとえば、複数の5点変換のうちの少なくとも1つは、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、以下の中間結果を有することによって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(702)を含む。] 図7
[0016] w0=x0−x4、
w1=x1−x3、
z2=x1+x3、
z4=x0+x4、
t2=z2+z4、
t4=z2−z4、
c’=c+0.25、
ここで、
X0=t2+x2、
X1=b*w1+a*w0、
X2=c’*t2−0.25*t4−x2=0.25*t4+c’*t2−x2)、
X3=a*w1−b*w0、
X4=−c’*t2−0.25*t4+x2=0.25*t4−(c’*t2−x2)、
上式で、]
[0017] である。]
[0018] 別の例(図8)では、複数の5点変換のうちの少なくとも1つは、12回加算演算、4回乗算演算、2回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの離散コサイン変換タイプII(DCT−II)(802)を含むことができる。たとえば、複数の5点変換のうちの少なくとも1つは、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(802)を含む。] 図8
[0019] w1=x0+x4、
w2=x4−x0、
w3=x3−x1、
w4=x3+x1、
w5=w1+w4、
w6=w4−w1、
u1=x2−αw5、
u2=x2+w5、
u3=βw2+γw3、
u4=βw3−γw2、
u5=δw6、
ここで、
X0=u2、
X1=u4、
X2=u4−u1、
X3=u3、
X4=u1+u5、
上式で、]
[0020] である。]
[0021] 代替的に、複数の5点変換のうちの少なくとも1つは、12回加算演算、5回乗算演算、1回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの変換(802)を含むことができる。]
[0022] 別の例(図9)では、複数の5点変換のうちの少なくとも1つは、20回加算演算、16回乗算演算、および3回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(902)を含むことができる。たとえば、複数の5点変換のうちの少なくとも1つは、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(902)を含むことができる。] 図9
[0023] k1=g*x1+h*x3、
k2=h*x1+g*x3、
k3=f*x0+i*x4、
k4=i*x0+f*x4、
k5=i*x1−f*x3、
k6=−f*x1+i*x3、
k7=g*x0−h*x4、
k8=h*x0−g*x4、
j1=x0+x4、
j2=x3−x1、
ここで、
X0=k3+k1+x2、
X1=k7+k5−x2、
X2=j1+j2−x2、
X3=h*x0−g*x4−f*x1+i*x3+x2、
X4=k4−k2+x2。]
[0024] 上式で、]
[0025] である。]
[0026] 別の例(図10)では、複数の5点変換のうちの少なくとも1つは、20回加算演算、12回乗算演算、および4回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(1002)を含むことができる。たとえば、複数の5点変換のうちの少なくとも1つは、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1002)を含むことができる。] 図10
[0027] q1=x0+x4、
q2=x3−x1、
p1=(x1−x3)*g−x1*(g+h)=q2*g−x1*(g+h)、
p2=(x1−x3)*g+x3*(h+g)=q2*g+x3*(g+h)、
p3=(x0+x4)*f+x0*(i−f)=q1*f+x0*(i−f)、
p4=(x0+x4)*f+x4*(i−f)=q1*f+x4*(i−f)、
p5=(x3−x1)*f+x3*(i−f)=q2*f+x3*(i−f)、
p6=(x3−x1)*f−x1*(i−f)=q2*f−x1*(i−f)、
p7=(x0+x4)*g+x0*(h+g)=q1*g+x0*(h+g)、
p8=(x0+x4)*g+x4*(h+g)=q1*g+x4*(h+g)、
ここで、
X0=p2+p4+x2、
X1=p5+p7−x2、
X2=q1+q2−x2、
X3=p6+p8+x2、
X4=p1+p3+x2、
上式で、]
[0028] である。]
[0029] 別の例(図14)では、複数の5点変換のうちの少なくとも1つは、16回加算演算、9回乗算演算、および5回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(1402)を含むことができる。たとえば、複数の5点変換のうちの少なくとも1つは、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1402)を含むことができる。] 図14
[0030] w0=f*x0−i*x4、
w1=g*x1−h*x3、
z2=g*x1+h*x3、
z4=f*x0+i*x4、
v1=2b*w1+2a*w0、
v2=z2+z4、
v3=2b*w0−2a*w1、
y2=2c*v2+z2−2*x2、
y4=−2c*v2−z4+2*x2、
ここで、
X0=v2+x2、
X1=v1−2*X0、
X2=y2−X1、
X3=v3−X2、
X4=y4−X3、
上式で、]
[0031] および]
[0032] である。]
[0033] 別の例(図15)では、複数の5点変換のうちの少なくとも1つは、15回加算演算、10回乗算演算、2回シフト演算、および5回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(1502)を含むことができる。たとえば、複数の5点変換のうちの少なくとも1つは、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1502)を含むことができる。] 図15
[0034] w0=f*x0−i*x4、
w1=g*x1−h*x3、
z2=g*x1+h*x3、
z4=f*x0+i*x4、
v1=2b*w1+2a*w0、
v2=z2+z4、
v3=2b*w0−2a*w1、
y2=(2c+2)*v2+z2、
y4=2c*v2+z4、
ここで、
X0=v2+x2、
X1=v1−2*X0、
X2=y2−v1、
X3=v3−X2、
X4=−y4+2*x2−X3、
上式で、]
[0035] および]
[0036] である。]
[0037] 別の例(図16)では、複数の5点変換のうちの少なくとも1つは、15回加算演算、11回乗算演算、2回シフト演算、および5回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(1602/1702)を含むことができる。たとえば、複数の5点変換のうちの少なくとも1つは、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1602)を含むことができる。] 図16
[0038] w0=f*x0−i*x4、
w1=g*x1−h*x3、
z2=g*x1+h*x3、
z4=f*x0+i*x4、
v1=2b*w1+2a*w0、
v2=z2+z4、
v3=2b*w0−2a*w1、
d2=(2c+2)*z2+(2c+2)*z4、
d4=(2c+2)*z4+2c*z2、
ここで、
X0=z2+z4+x2、
X1=v1−2*X0、
X2=d2−v1、
X3=v3−X2、
X4=−d4+2*x2−X3、
上式で、]
[0039] および]
[0040] である。]
[0041] 別の例(図17)では、複数の5点変換のうちの少なくとも1つは、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1702)を含むことができる。] 図17
[0042] w0=f*x0−i*x4、
w1=g*x1−h*x3、
z2=g*x1+h*x3、
z4=f*x0+i*x4、
z1=2a*w0+2b*w1
z3=(2b+2a)*w0−(2a−2b)*w1、
d2=2(c+2)*z2+(2c+2)*z4、
d4=(2c+2)*z4+2c*z2、
ここで、
X0=z2+z4+x2、
X1=z1−2*X0、
X2=d2−z1、
X3=z3−d2、
X4=−d4+2*x2−X3、
上式で、]
[0043] および]
[0044] である。]
[0045] 別の例(図18)では、複数の5点変換のうちの少なくとも1つは、15回加算演算、12回乗算演算、2回シフト演算、および5回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(1802)を含むことができる。たとえば、複数の5点変換のうちの少なくとも1つは、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、以下の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1802)を含むことができる。] 図18
[0046] w0=f*x0−i*x4、
w1=g*x1−h*x3、
z2=g*x1+h*x3、
z4=f*x0+i*x4、
z1=2a*w0+2b*w1
z3=(2b+2a)*w0−(2a−2b)*w1、
r2=(2c+2)*z2+(2c+2)*z4、
r4=4(c+1)*z2+4(c+1)*z4、
ここで、
X0=z2+z4+x2、
X1=z1−2*X0、
X2=d2−z1、
X3=z3−r2、
X4=−r4+2*x2−z3、
上式で、]
[0047] および]
[0048] である。]
[0049] さらに、変換方法および/またはデバイスは、変換を実行する前に入力値に対してウィンドウイング(windowing)演算を実行することができ、ウィンドウイング演算は、非対称ウィンドウ関数を実装する。]
[0050] いくつかの実装形態では、MDCTは、5点離散コサイン変換タイプIIを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装することができる。]
[0051] 他の実装形態では、MDCTは、5点離散コサイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装することができる。]
[0052] さらに他の実装形態では、MDCTは、5点離散コサイン変換タイプIIおよび5点離散コサイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装することができる。]
[0053] さらに他の実装形態では、MDCTは、5点離散サイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装する。]
[0054] 逆変換値を計算するための復号方法および/またはデバイスを提供する。オーディオ信号を表すスペクトル係数入力値が受信される。次いで、スペクトル係数入力値は、複数の5点逆変換に再帰的にデシメートされる逆モディファイド離散コサイン変換(IMDCT)を使用して、時間領域出力値に変換される。]
[0055] 一例(図32)では、複数の5点逆変換のうちの少なくとも1つは、12回加算演算、4回乗算演算、2回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの逆離散コサイン変換タイプII(DCT−II)(3202)を含むことができる。たとえば、複数の5点逆変換のうちの少なくとも1つは、入力ベクトル[X0,X1,X2,X3,X4]をとって出力ベクトル[x0,x1,x2,x3,x4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの逆離散コサイン変換タイプII(IDCT−II)(3202)を含むことができる。] 図32
[0056] u1=X4−X2、
u5=X4+X2、
w0=X0+u1、
w5=X0−αu1、
w2=βX3−γX1、
w3=γX3−βX1、
w6=δu5、
w1=w5−w6、
w4=w5+w6、
ここで、
x0=w1−w2、
x1=w4+w3、
x2=w0、
x3=w4−w3、
x4=w1+w2、
上式で、]
[0057] である。]
[0058] さらに、復号方法および/またはデバイスは、逆変換を実行した後に入力値に対してウィンドウイング演算を実行することができ、ウィンドウイング演算は、非対称ウィンドウ関数を実装する。]
[0059] 一実装形態では、IMDCTは、5点逆離散コサイン変換タイプIIを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装することができる。]
[0060] 別の実装形態では、IMDCTは、5点逆離散コサイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装することができる。]
[0061] さらに別の実装形態では、IMDCTは、5点逆離散コサイン変換タイプIIおよび5点逆離散コサイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装することができる。]
[0062] 一実装形態では、IMDCTは、5点逆離散サイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装することができる。]
[0063] 様々な特徴、性質、および利点は、全体を通じて同様の参照符号が同様のものを指す図面とともに、以下に記載する詳細な説明を読めば明らかになろう。]
図面の簡単な説明

[0064] MDCT分析フィルタバンクを含むことができるエンコーダの一例を示すブロック図。
どのように、より小さい変換によって変換を実装することができるかの一例を示すブロック図。
IMDCT合成フィルタバンクを含むことができるデコーダの一例を示すブロック図。
どのように、より小さい逆変換によって逆変換を実装することができるかの一例を示すブロック図。
5点DCT−II変換の因数分解の第1の例を示す流れ図。
5点DCT−II変換の因数分解の第2の例を示す流れ図。
5点DCT−II変換の因数分解の第3の例を示す流れ図。
5点DCT−II変換の因数分解の代替例を示す流れ図。
5点DCT−IV変換の因数分解の第1の例を示す流れ図。
どのように5点DCT−IV変換を実装することができるかの第2の例を示す流れ図。
どのようにDCT−IV変換をDCT−II変換にマッピングして、入力係数を出力係数に変換することができるかを示すブロック図。
5点DCT−II変換を使用して5点DCT−IV変換を実装して、入力係数を出力係数に変換することができることを示すブロック図。
5点DCT−II変換を使用して実装することができる図12の5点DCT−IV変換の因数分解の一例を示すブロック図。
どのように図13のDCT−IV変換のマッピングを図6のDCT−II変換と組み合わせることができるかを示すブロック図。
どのように図14のDCT−IV変換をさらにモディファイして等価変換にすることができるかを示すブロック図。
どのように図15のDCT−IV変換をさらにモディファイして等価変換にすることができるかを示すブロック図。
どのように図16のDCT−IV変換をさらにモディファイして等価変換にすることができるかを示すブロック図。
どのように図17のDCT−IV変換をさらにモディファイして等価変換にすることができるかを示すブロック図。
Nサイズ変換が複数の5点変換によって表されるまで、どのようにNサイズ変換をより小さいN/2サイズ変換に再帰的に分割することができるかを示すブロック図。
10点DCT−IV変換を複数のより小さい5点DCT−II変換に再帰的に分割する、変換デシメーションおよび分割の一例を示すブロック図。
Nサイズ逆変換が複数の5点逆変換によって表されるまで、どのようにNサイズ逆変換をより小さいN/2サイズ逆変換に再帰的に分割することができるかを示すブロック図。
10点IDCT−IV逆変換を複数のより小さい5点IDCT−II逆変換に再帰的に分割する、逆変換デシメーションおよび分割の一例を示すブロック図。
同数の周波数係数を保ちながら、変換段に関連する遅延を10msに低減するために使用することができる非対称ウィンドウ形状を示す図。
変換値を計算するためのデバイスを示すブロック図。
5点コア変換に基づくMDCT変換を使用して信号を符号化するための方法の一例を示す図。
変換値を計算するためのデバイスを示すブロック図。
コアIDCT−II変換に基づくIMDCT変換を使用して信号を復号するための方法の一例を示す図。
10点DCT−IV変換を複数のより小さい5点DCT−II変換に再帰的に分割する、変換デシメーションおよび分割の代替例を示す図。
図28の変換の逆である10点IDCT−IV変換を示す図。
10点DCT−IV逆変換を複数のより小さい5点DCT−II変換および5点DCT−IVに再帰的に分割する、変換デシメーションおよび分割の一例を示すブロック図。
図30の順変換に対する逆変換の一例を示すブロック図。
図8の順変換に対応する逆変換を示す図。] 図12 図13 図14 図15 図16 図17 図28 図30 図6 図8
実施例

[0065] 次に、図面を参照しながら様々な実施形態について説明するが、全体にわたって同様の要素を指すのに同様の参照符号を使用する。以下の記述では、説明の目的で、1つまたは複数の実施形態の完全な理解を与えるために多数の具体的な詳細を記載する。ただし、そのような(1つまたは複数の)実施形態は、これらの具体的な詳細なしに実施できることは明らかであろう。他の例では、1つまたは複数の実施形態の説明を円滑にするために、よく知られた構造およびデバイスはブロック図の形態で示す。]
[0066] 概観
1つの特徴は、(ある整数K>=1に対して、N=5*2^Kである)N点MDCT変換をより小さいサイズのN/2点DCT−IV、DST−IVおよび/またはDCT−II変換にマッピングすることによって、N点MDCT変換を実装することを提供する。一例では、スケーリングされた5点コア関数を最後の段で利用することによって、MDCTを2分の1に系統的にデシメートすることができる。1つの特徴は、サイズ5のDCT−II、DCT−IV、およびDST−IVコア変換を計算するためのいくつかの高速アルゴリズムを提供する。本明細書で請求する全体的な変換アーキテクチャは、N=5*2^Kである、サイズNの変換をサイズN/2の2つの変換に再帰的に分割し、本明細書で説明する高速の技法を使用することによって最終の(最小の)5点変換を実装する、一般的なデシメーションプロセスである。そのようなサイズの変換は、最近および新興の規格G.729.1、G.718、EVRC−WBなどのスピーチおよびオーディオコーディングの適用例のためのMDCTフィルタバンクの設計において発生する。]
[0067] 別の特徴は、MDCTを計算するための上記のアーキテクチャと、同数の周波数係数を保ちながら、変換段に関連する遅延を低減するための非対称ウィンドウとを組み合わせる、MDCTのモディファイドウィンドウイング段を使用することを提供する。]
[0068] コーデック構造
図1は、MDCT分析フィルタバンクを含むことができるエンコーダの一例を示すブロック図である。エンコーダ102は入力オーディオ信号104を受信することができる。MDCT分析フィルタバンク106(すなわち、タイプIVの離散コサイン変換に基づくモディファイド離散コサイン変換)は、時間領域入力オーディオ信号104を複数のサブバンド信号に分解し、それらの信号を周波数領域に変換するように動作し、各サブバンド信号は、サブバンドごとに、ブロックごとに、変換係数に変換される。次いで、得られた信号は、量子化器108によって量子化され、エントロピーエンコーダ110によって符号化されて、デジタルオーディオ信号のビットストリーム112が生成される。一例によれば、MDCT分析フィルタバンク106は、ウィンドウイング関数114、(たとえば、時間領域から周波数領域への)変換116、および/またはスケーリング関数118によって実装することができる。ウィンドウイング関数114、変換116、および/またはスケーリング関数116を含むMDCT分析フィルタバンク106は、ハードウェア(たとえば、プロセッサ、回路、プログラマブル論理デバイスなどとして)、ソフトウェア(たとえば、プロセッサによって実行可能な命令)、および/またはそれらの組合せで実装することができる。] 図1
[0069] 図2は、どのように、より小さい変換によって変換を実装することができるかの一例を示すブロック図である。この例では、図1の変換116は、複数の入力202を受信し、複数の出力204を生成することができる。これを達成するために、変換116は、同じサイズまたはより小さいサイズの1つまたは複数の変換によって表すことができる。たとえば、変換116は、複数のk点DCT−IV変換206aおよび206bによって実装することができる。今度は、各k点DCT−IV変換206aおよび206bは、1つまたは複数のn点DCT−II変換208a、208b、または210a、210bによって実装することができる。いくつかの実装形態では、DCT−IV変換の代わりに、離散サイン変換(DST)−IVを使用できることに留意されたい。より大きい変換116を複数のより小さい変換208に再帰的に分割することによって、より大きい変換116の実装が簡単になる。ただし、演算を最小限に抑える高速変換パフォーマンスを達成するためには、より小さい変換の効率的なアルゴリズムの実装が望ましい。一例では、変換116は、オーディオ信号を表す時間領域入力値x(0)...x(m)202を受信し、それらを周波数領域スペクトル係数X(0)...X(m)204に変換することができる。これらのより小さい変換のための様々な実装形態について以下で説明する。] 図1 図2
[0070] 図3は、IMDCT合成フィルタバンクを含むことができるデコーダの一例を示すブロック図である。デコーダ302はビットストリーム304を受信することができる。エントロピーデコーダ306はビットストリーム304を復号し、次いで、ビットストリーム304は、逆量子化器308によって逆量子化されて、周波数領域信号が生成される。IMDCT合成フィルタバンク310(すなわち、タイプIVの離散コサイン変換に基づく逆モディファイド離散コサイン変換)は、周波数領域信号304を変換して時間領域オーディオ信号312に戻すように動作する。IMDCT合成フィルタバンク310はMDCT分析フィルタバンク106の演算を逆算することができる。一例によれば、IMDCT合成フィルタバンク310は、スケーリング関数314、(たとえば、周波数領域から時間領域への)逆変換316、ならびにウィンドウイング+重なりおよび追加関数318によって実装することができる。スケーリング関数314、逆変換316、および/またはウィンドウイング関数318を含むIMDCT合成フィルタバンク310は、ハードウェア(たとえば、プロセッサ、回路、プログラマブル論理デバイスなどとして)、ソフトウェア(たとえば、プロセッサによって実行可能な命令)、および/またはそれらの組合せで実装することができる。] 図3
[0071] 図4は、どのように、より小さい逆変換によって逆変換を実装することができるかの一例を示すブロック図である。この例では、図3の逆変換316は、複数の入力402を受信し、複数の出力404を生成することができる。これを達成するために、逆変換316は、同じサイズまたはより小さいサイズの1つまたは複数の変換によって表すことができる。たとえば、逆変換316は、複数のk点IDCT−IV逆変換406aおよび406bによって実装することができる。今度は、各k点IDCT−IV逆変換406aおよび406bは、1つまたは複数のn点IDCT−II変換408a、408b、または410a、410bによって実装することができる。いくつかの実装形態では、IDCT−IV変換の代わりに、逆離散サイン変換(IDST)−IVを使用できることに留意されたい。一例では、変換316は、オーディオ信号を表す周波数領域スペクトル係数X(0)...X(m)402を受信し、それらを時間領域に再構成された出力値x(0)...x(m)404に変換することができる。ただし、演算を最小限に抑える高速の変換パフォーマンスを達成するためには、より小さい逆変換の効率的なアルゴリズムの実装が望ましい。] 図3 図4
[0072] MDCT102およびIMDCT302変換への入力は、複数のデータポイントを有するフレームまたはブロックとして処理できることに留意されたい。したがって、MDCTベースのボコーダ(たとえば、G.722.1やG.722.1Cなど)が、320よりも小さいフレーム長を有するデータブロックをサポートするためには、デシメートされたサイズの変換が必要になる。160、80、40などのフレーム長を有するブロックでは、これらのサイズがすべて5の倍数になることがわかる。したがって、(デシメーション技法による)最後の可約でないブロックサイズは、サイズ5の変換を使用することができる。計算複雑性の見地から、DCT−IV変換またはFFF変換のいずれかよりも、5点DCT−II変換を設計するほうが、はるかに効率的であることがわかる。]
[0073] MDCT変換の定義
行列表記法を使用して、MDCT変換を行列Mによって表すことができる。]
[0074] 上式で、]
[0075] である。]
[0076] したがって、]
[0077] となり、上式で、xは、入力サンプルの行列]
[0078] を表し、Xは、得られたMDCTの係数の行列]
[0079] を表し、]
[0080] は、再構成された出力の行列]
[0081] を表す。]
[0082] MDCT変換を実装するために、MDCT変換をN/2点コア変換関数にマッピングすることができる。たとえば、図1の変換116を、1つまたは複数のN/2点DCT−IV変換として実装することができる。] 図1
[0083] DCT−IV変換は、次のように定義することができる。]
[0084] 一方、IDCT−IV変換は、次のように定義することができる。]
[0085] MDCT変換は、次のようにN/2点DCT−IV変換にマッピングすることができ、]
[0086] IMDCT変換は、次のようにN/2点IDCT−IV変換にマッピングすることができ、]
[0087] 上式で、]
[0088] 上式で、IN/4は、N/4×N/4の単位行列であり、JN/4は、N/4×N/4の順序反転行列であり、行列Sは次のように定義され、]
[0089] は、次のように定義することができるN/2×N/2のDCT−IV行列である。]
[0090] DCT−IV行列の対称性およびインボリュートの性質を使用することによって、それをDCT−II変換にマッピングすることができる。DCT−II変換は、次のように定義することができる。]
[0091] 同様に、IDCT−II変換は、次のように定義することができる。]
[0092] 上式で、k=0の場合は]
[0093] であり、他の場合は1である。]
[0094] DCT−IV、DST−IV、およびDCT−II変換の定義
1つの特徴によれば、1つまたは複数のDCT−II(およびIDCT−II)変換としてそれぞれ実装することができる1つまたは複数のDCT−IVまたはDST−IV(およびIDCT−IVまたはDST−IV)によって、変換116(図1)および逆変換316(図3)をデシメートし、実装することができる。] 図1 図3
[0095] DCT−IVおよびIDCT−IVは、対応して、次のように定義することができる。]
[0096] DST−IVおよびIDST−IVは、対応して、次のように定義することができる。]
[0097] 同様に、DCT−IIおよびその逆変換は、対応して、次のように定義することができる]
[0098] 上式で、k=0の場合はλ(k)=1/2であり、他の場合は1である。]
[0099] 式1〜式6において、n=0、1、...N−1に対する{x(n)}は、サンプルの入力シーケンスを表し、Nはフレーム長を示し、X(k)は得られたMDCTの係数である。]
[0100] N=5の場合、DCT−IV変換のための行列C_IV、DST−IV変換のための行列S_IV、およびDCT−II変換のための行列C_IIは、対応して、次のように表すことができる。]
[0101] DCT−IIの表現を簡単にするために、因数]
[0102] を無視することができ、すべての係数は、]
[0103] で乗じ、同時に以下の表記法を使用することができる。]
[0104] それによって、以下が生成される。]
[0105] ここで、a2+b2=1.25であり、c2+d2=0.75であることに留意されたい。さらに、c−d=0.5であることにも留意されたい。これは、関連するコサイン値に関する代数式から得られる。]
[0106] 同様に、DCT−IVの場合、すべての係数は、]
[0107] で乗じ、以下の表記法を使用する。]
[0108] 以下が生成される。]
[0109] f2+i2=2であり、同様に、g2+h2=2であることに留意されたい。さらに、]
[0110] であり、]
[0111] であることに注意されたい。これは、関連するコサイン値に関する代数式から得られる。]
[0112] 最後に、DST−IVの場合、すべての係数は、]
[0113] で乗じ、以下の表記法を使用することができる。]
[0114] 以下が生成される。]
[0115] DCT−IVの場合と同様に、ここでもf2+i2=2であり、同様に、g2+h2=2であることに留意されたい。]
[0116] 5点DCT−IIを計算するための高速アルゴリズムの導出
処理効率を達成するためには、より大きい変換によって使用される最小サイズ変換が高速で効率的であるべきである。これは、これらの小さいサイズの変換によって実行される演算(たとえば、乗算、加算、およびシフト)を最小限に抑えることによって達成される。したがって、最小サイズ変換のための様々な因数分解を実装して、これを達成することができる。どの変換の因数分解を実装するかの選択は、使用されているプロセッサの能力を含む様々なファクタに依存することができる。]
[0117] 効率的なDCT−II変換は、様々な方法で実装することができる。たとえば、変換への入力が入力ベクトルxによって与えられると仮定すると、以下のようになり、]
[0118] ベクトルxと、スケーリングされたDCT−II行列(行列Dに記載の]
[0119] によってスケーリングされた行列)との積が、DCT−II行列Xを生成する。]
[0120] 上式で、]
[0121] である。]
[0122] この行列Xにおける奇数の係数X1およびX3の計算を考察する。]
[0123] これは、x0−x4とx1−x3による単純なバタフライとして係数X1とX3の両方を計算できることを示唆している。次に、この行列Xにおける偶数の係数X2およびX4の計算を考察する。]
[0124] ここでも、やはり、x0+x4とx1+x3による単純なバタフライとして計算を編成できるように見える。]
[0125] 実際の変換演算は、加算、乗算および/またはシフトの全体的な数を低減するために内部変換演算を並べ替えることによって、効率的に実装することができる。したがって、変換の異なる因数分解によって異なる中間結果が達成され、そのような中間結果は、対応する各変換を特徴付ける。]
[0126] 図5は、5点DCT−II変換502の因数分解の第1の例を示す流れ図である。この例では、以下の中間結果が計算されるように、5点DCT II変換502を表すために上記の行列Xの奇数の係数X1およびX3と偶数の係数X2およびX4との間の関係を利用する。] 図5
[0127] w0=x0−x4、
w4=x0+x4、
w1=x1−x3、
w3=x1+x3、
および、
u2=x2+w3+w4、
u3=−d*w3+c*w4、
u4=d*w4+c*w3、
そして、以下の出力を得る。]
[0128] X0=u2、
X1=b*w1+a*w0、
X2=u3−x0、
X3=a*w1−b*w0、
X4=u4+x0、
上式で、入力係数504(x0,x1,x2,x3,x4)は、出力係数506(X0,X1,X2,X3,およびX4)に変換される。図5のこの方式の複雑さは、12回加算および8回乗算にある。特に、第1のバタフライ508を実装して出力係数X1およびX3を得て、第2のバタフライ510を実装して出力係数X2およびX4を得る。この変換502における最長経路は、3回演算(バタフライが各経路につきわずか1つのMACを必要とすると仮定すると、加算および/または乗算)のみである。「バタフライ」によって実行される演算は、しばしば平面回転またはギブンス回転と呼ばれる。] 図5
[0129] 図6は、5点DCT−II変換602の因数分解の第2の例を示す流れ図である。この変換602は、入力係数504を出力係数506に変換するための図5の変換502から導出することができる。この実装形態では、第2のバタフライ510(図5)への入力は、値z4=x0+x4およびz2=x1+x3として表され、X0に向かう順方向経路に沿って追加することができる。] 図5 図6
[0130] したがって、中間結果は次のように計算される。]
[0131] w0=x0−x4、
w1=x1−x3、
z2=x1+x3、
z4=x0+x4、
u2=z2+z4。]
[0132] さらに、c−d=0.5であることを使用して、次のように出力X0、X2、およびX4を表す。]
[0133] X0=z4+z2+x2、
X2=c*z4−d*z2−x2=c*(z4+z2)+(c−d)*z2−x2=c*(z4+z2)+0.5*z2−x2、
X4=d*z4−c*z2+x2=−c*(z4+z2)−(c−d)*z4+x2=−c*(z4+z2)−0.5*z4+x2。]
[0134] したがって、5点DCTII変換602は、以下によって特徴付けられる。]
[0135] X0=u2+x2、
X1=b*w1+a*w0、
X2=c*u2+0.5*z2−x2、
X3=a*w1−b*w0、
X4==−c*u2−0.5*z4+x2。]
[0136] この変換602の複雑さは、12回加算、5回乗算、および2回シフトにある。この変換における1/2因数は2進分数であり、したがって、そのような1/2で乗じる「乗算」は、2値シフト演算(すなわち、シフト)にすぎないことに留意されたい。ここでの最長経路長は4回演算である。]
[0137] 図7は、5点DCT−II変換702の因数分解の第3の例を示す流れ図である。この変換702は、入力係数504を出力係数506に変換するための図6の変換602から導出することができる。係数X2およびX4を求める式は、次のように表すことができる。] 図6 図7
[0138] X2=c*(z4+z2)+0.5*z2−x2=c’*(z4+z2)+d’*(z4−z2)−x2、
X4=−c*(z4+z2)−0.5*z4+x2=−c’*(z4+z2)+d’*(z4−z2)+x2、
上式で、値c’およびd’は以下のように選択される。]
[0139] 式7は、以下のように並べ替えることができる。]
[0140] z4*c+z2*(c+0.5)=z4*(c’+d’)+z2*(c’−d’)。]
[0141] したがって、以下を示すことができる。]
[0142] c=c’+d’、および、
c+0.5=c’−d’。]
[0143] これらの式の両方を減算することによって、以下を示すことができる。]
[0144] 0.5=−2d’、または、
d’=−0.25、および、
c’=c−d’=c+0.25。]
[0145] したがって、出力係数X2およびX4は、次のように表すことができる。]
[0146] X2=c’*(z4+z2)−0.25*(z4−z2)−x2=0.25*(z2−z4)+(c’*(z4+z2)−x2)、
X4=−c’*(z4+z2)−0.25*(z4−z2)+x2=0.25*(z2−z4)−(c’*(z4+z2)−x2)、
この結果、図7の変換702がもたらされる。] 図7
[0147] したがって、中間結果は次のように計算される。]
[0148] w0=x0−x4、
w1=x1−x3、
z2=x1+x3、
z4=x0+x4、
t2=z2+z4、
t4=z2−z4、
c’=c+0.25。]
[0149] したがって、5点DCTII変換702は、以下によって特徴付けられる。]
[0150] X0=t2+x2、
X1=b*w1+a*w0、
X2=c’*t2−0.25*t4−x2=0.25*t4+c’*t2−x2)、
X3=a*w1−b*w0、
X4=−c’*t2−0.25*t4+x2=0.25*t4−(c’*t2−x2)。]
[0151] この変換702は、12回加算、5回乗算、および1回シフトで実装することができる。この変換702における1/4因数は2進分数であり、したがって、そのような1/4で乗じる「乗算」は、2値シフト演算(すなわち、シフト)にすぎないことに留意されたい。ここでの最長経路長も4回演算である。]
[0152] 図8は、5点DCT−II変換802の因数分解の代替例を示す流れ図である。この変換における因数αは2進分数であり、したがって、そのようなαで乗じる乗算は、2値シフト演算にすぎないことに留意されたい。この5点変換は、平面回転および5回乗算を使用するか、または、平面回転の因数分解による4回乗算を使用するか、またはリフティングステップを使用することによって実装することができる。入力x504の5点シーケンスでは、4回非自明乗算、12回加算、および2回シフトまたは5回乗算、12回加算、および1回シフトを使用して、5点DCT−II変換802に関する出力X506を生成することができる。] 図8
[0153] この例では、以下が乗数である。]
[0154] DCT−II変換802は、以下のようになる中間結果を含むことができる。]
[0155] w1=x0+x4、
w2=x4−x0、
w3=x3−x1、
w4=x3+x1、
w5=w1+w4、
w6=w4−w1、
u1=x2−αw5、
u2=x2+w5、
u3=βw2+γw3、
u4=βw3−γw2、
u5=δw6。]
[0156] したがって、DCT−II変換802に関する出力X0、X1、X2、X3、およびX4は、次のように表すことができる。]
[0157] X0=u2、
X1=u4、
X2=u4−u1、
X3=u3、
X4=u1+u5。]
[0158] 図5〜図9に示す変換(および、本明細書での他の変換)に関する中間結果は、その変換の流れ図中で異なる点が選択された場合、変化することがあることに留意されたい。したがって、これらの変換の流れ図からは、(たとえば、流れ図中の異なる点において)より大きいもしくはより小さい中間結果および/または異なる結果が企図され、理解される。] 図5 図6 図7 図8 図9
[0159] 逆変換の導出
図4〜図20に示す変換は、それらの図に示す順変換を逆にするように反転することができる。図32は、図8の順変換に対応する逆変換(5点IDCT−II逆変換)を示している。逆変換3202は、入力3204(スペクトル係数)を出力(時間領域値)3206に変換し、以下の中間結果によって特徴付けることができる。] 図10 図11 図12 図13 図14 図15 図16 図17 図18 図19
[0160] u1=X4−X2、
u5=X4+X2、
w0=X0+u1、
w5=X0−αu1、
w2=βX3−γX1
w3=γX3−βX1、フローグラフと比較したソフトウェアの否定因数を使用する。]
[0161] w6=δu5、
w1=w5−w6、
w4=w5+w6、
上式で、]
[0162] である。]
[0163] したがって、IDCT−II変換3202に関する出力3206であるX0、X1、X2、X3、およびX4は、次のように計算することができる。]
[0164] x0=w1−w2、
x1=w4+w3、
x2=w0、
x3=w4−w3、
x4=w1+w2。]
[0165] 5点DCT−IVおよびDST−IVを計算するための高速アルゴリズムの導出
効率的なDCT−IV変換および/またはDST−IVは、様々な方法で実装することができる。たとえば、変換への入力がベクトルxによって与えられると仮定すると、以下のようになり、]
[0166] ベクトルxと、スケーリングされたDCT−IV行列(行列Eに記載の]
[0167] によってスケーリングされた行列)との積が、DCT−IV行列Xを生成する。]
[0168] 図9は、5点DCT−IV変換902の因数分解の第1の例を示す流れ図である。変換902は、入力係数x904を出力係数X906に変換(convert)する。変換902は、以下の単純な項の再配列によって得られる。] 図9
[0169] X0=f*x0+i*x4+g*x1+h*x3+x2、
X1=g*x0−h*x4+i*x1−f*x3−x2、
X2=−x1+x3−x2+x0+x4、
X3=h*x0−g*x4−f*x1+i*x3+x2、
X4=i*x0+f*x4−h*x1−g*x3+x2、
上式で、]
[0170] である。]
[0171] 以下の中間結果を使用して、変換902を計算できることに留意されたい。]
[0172] k1=g*x1+h*x3、
k2=h*x1+g*x3、
k3=f*x0+i*x4、
k4=i*x0+f*x4、
k5=i*x1−f*x3、
k6=−f*x1+i*x3、
k7=g*x0−h*x4、
k8=h*x0−g*x4、
j1=x0+x4、
j2=x3−x1。]
[0173] したがって、変換902は次のように表すことができる。]
[0174] X0=k3+k1+x2、
X1=k7+k5−x2、
X2=j1+j2−x2、
X3=h*x0−g*x4−f*x1+i*x3+x2、
X4=k4−k2+x2。]
[0175] したがって、図9の変換902に示すように、出力係数X0、X1、X2、X3、およびX4は、4つのバタフライ908a、908b、908c、および908dを使用することによって計算することができる。この実装形態の複雑さは、20回加算および16回乗算にある。この実装形態における最長経路長は3回演算のみである。] 図9
[0176] 図10は、どのように5点DCT−IV変換1002を実装することができるかの第2の例を示す流れ図である。図9の変換902における各バタフライが実行すべき3回乗算のみを必要とするように、各バタフライをモディファイすることができる。たとえば、出力係数X0およびX4に関する成分演算は、次のように書くことができる。] 図10 図9
[0177] f*x0+i*x4=(x0+x4)*f+x4*(i−f)、
i*x0+f*x4=(x0+x4)*f+x0*(i−f)、
g*x1+h*x3=(x1−x3)*g+x3*(h+g)、
−h*x1−g*x3=(x1−x3)*g−x1*(g+h)。]
[0178] 同様に、出力係数X1およびX3に関する成分演算は、次のように書くことができる。]
[0179] g*x0−h*x4=(x3−x1)*f+x3*(i−f)、
i*x1−f*x3=(x0+x4)*g+x0*(h+g)、
h*x0−g*x4=(x3−x1)*f−x1*(i−f)、
−f*x1+i*x3=(x0+x4)*g+x4*(h+g)。]
[0180] そのような分解を使用することによって、変換1002に関する出力係数は、以下によって特徴付けることができる。]
[0181] X0=(x0+x4)*f+x4*(i−f)+(x1−x3)*g+x3*(h+g)+x2、
X1=(x3−x1)*f+x3*(i−f)+(x0+x4)*g+x0*(h+g)−x2
X2=−x1+x3−x2+x0+x4、
X3=(x3−x1)*f−x1*(i−f)+(x0+x4)*g+x4*(h+g)+x2、
X4=(x0+x4)*f+x0*(i−f)+(x1−x3)*g−x1*(g+h)+x2。]
[0182] 以下の中間結果を使用して、変換1002を計算できることに留意されたい。]
[0183] q1=x0+x4、
q2=x3−x1、
p1=(x1−x3)*g−x1*(g+h)=q2*g−x1*(g+h)、
p2=(x1−x3)*g+x3*(h+g)=q2*g+x3*(g+h)、
p3=(x0+x4)*f+x0*(i−f)=q1*f+x0*(i−f)、
p4=(x0+x4)*f+x4*(i−f)=q1*f+x4*(i−f)、
p5=(x3−x1)*f+x3*(i−f)=q2*f+x3*(i−f)、
p6=(x3−x1)*f−x1*(i−f)=q2*f−x1*(i−f)、
p7=(x0+x4)*g+x0*(h+g)=q1*g+x0*(h+g)、
p8=(x0+x4)*g+x4*(h+g)=q1*g+x4*(h+g)。]
[0184] したがって、変換902は次のように表すことができる。]
[0185] X0=p2+p4+x2、
X1=p5+p7−x2、
X2=q1+q2−x2、
X3=p6+p8+x2、
X4=p1+p3+x2。]
[0186] ここで、この変換1002の複雑さは20回加算および12回乗算にある。ここでの最長経路の長さは4回演算である。]
[0187] 代替手法では、DCT−IV変換をDCT−II変換にマッピングすることによって、DCT−IV変換を導出することができる。]
[0188] たとえば、図11は、どのようにDCT−IV変換1102をDCT−II変換1104にマッピングして、入力係数1106を出力係数1108に変換することができるかを示すブロック図である。] 図11
[0189] 図12は、5点DCT−II変換を使用して5点DCT−IV変換1202を実装して、入力係数1206を出力係数1208に変換することができることを示すブロック図である。これは、図11に示す変換マッピングの特定の場合である。この例では、角度に関する表記法を次のように表すことができる。] 図11 図12
[0190] 図13は、5点DCT−II変換を使用して実装することができる図12の5点DCT−IV変換の因数分解の一例を示すブロック図である。この例では、図12の5点DCT−IV変換を2で乗じ、] 図12 図13
[0191] 因数を周囲に移動している。このマッピングは、図12のマッピングと等価である。] 図12
[0192] 図14は、どのように図13のDCT−IV変換1202のマッピングを図6のDCT−II変換602と組み合わせることができるかを示すブロック図である。すなわち、DCT変換1402は、図6のDCT−II変換602として実装することができる、図13の変換1202の組合せとすることができる。したがって、変換1402に関する出力係数は、以下によって特徴付けることができる。] 図13 図14 図6
[0193] X0=(f*x0+i*x4)+(h*x3+g*x1)+x2、
X1=[2a*(f*x0−i*x4)+2b*(g*x1−h*x3)]−[2*X0]、
X2=[2c*(f*x0+i*x4+g*x1+h*x3)+(g*x1+h*x3)−2*x2]−[X1]、
X3=[2b*(f*x0−i*x4)−2a*(g*x1−h*x3)]−[X2]、
X4=[−2c*(f*x0+i*x4+g*x1+h*x3)−(f*x0+i*x4)+2*x2]−[X3]、
上式で、]
[0194] である。]
[0195] 中間結果は次のように計算できることに留意されたい。]
[0196] w0=f*x0−i*x4、
w1=g*x1−h*x3、
z2=g*x1+h*x3、
z4=f*x0+i*x4、
v1=2b*w1+2a*w0、
v2=z2+z4、
v3=2b*w0−2a*w1、
y2=2c*v2+z2−2*x2、
y4=−2c*v2−z4+2*x2。]
[0197] したがって、出力は次のように表すことができる。]
[0198] X0=v2+x2、
X1=v1−2*X0、
X2=y2−X1、
X3=v3−X2、
X4=y4−X3。]
[0199] このDCT−IV変換1402は、16回加算、9回乗算、および2回シフトのみを使用する。この変換における2因数は2進分数であり、したがって、そのような2で乗じる「乗算」は、2値シフト演算(すなわち、シフト)にすぎないことに留意されたい。]
[0200] 図15は、どのように図14のDCT−IV変換1402をさらにモディファイして等価変換1502にすることができるかを示すブロック図である。この例では、変換1502における最後のカスケード演算により、追加の簡略化が可能になる。したがって、変換1502に関する出力係数は、以下によって特徴付けることができる。] 図14 図15
[0201] X0=(f*x0+i*x4)+(h*x3+g*x1)+x2、
X1=[2a*(f*x0−i*x4)+2b*(g*x1−h*x3)]−[2*X0]、
X2=[(2c+2)*(f*x0+i*x4+g*x1+h*x3)]+(g*x1+h*x3)−[2a*(f*x0−i*x4)+2b*(g*x1−h*x3)]、
X3=[2b*(f*x0−i*x4)−2a*(g*x1−h*x3)]−[X2]、
X4=[−2c*(f*x0+i*x4+g*x1+h*x3)−(f*x0+i*x4)+2*x2]−[X3]。]
[0202] 中間結果は次のように計算できることに留意されたい。]
[0203] w0=f*x0−i*x4、
w1=g*x1−h*x3、
z2=g*x1+h*x3、
z4=f*x0+i*x4、
v1=2b*w1+2a*w0、
v2=z2+z4、
v3=2b*w0−2a*w1、
y2=(2c+2)*v2+z2、
y4=2c*v2+z4。]
[0204] したがって、出力は次のように表すことができる。]
[0205] X0=v2+x2、
X1=v1−2*X0、
X2=y2−v1、
X3=v3−X2、
X4=−y4+2*x2−X3。]
[0206] したがって、このDCT−IV変換1502は、15回加算、10回乗算、および2回シフトのみを使用する。この変換における「2」因数は2進分数であり、したがって、そのような2で乗じる「乗算」は、2値シフト演算(すなわち、シフト)にすぎないことに留意されたい。この実装形態における最長経路長は5回演算のみである。]
[0207] 図16は、どのように図15のDCT−IV変換1502をさらにモディファイして等価変換1602にすることができるかを示すブロック図である。変換1602に関する出力係数は、以下によって特徴付けることができる。] 図15 図16
[0208] X0=(f*x0+i*x4)+(h*x3+g*x1)+x2、
X1=[2a*(f*x0−i*x4)+2b*(g*x1−h*x3)]−[2*X0]、
X2=[(2c+2)*(g*x1+h*x3)+(2c+2)*(f*x0+i*x4)]−[2a*(f*x0−i*x4)+2b*(g*x1−h*x3)]、
X3=[2b*(f*x0−i*x4)−2a*(g*x1−h*x3)]−[X2]、
X4=[−(2c+2)*(f*x0+i*x4)−2c*(g*x1+h*x3)+2*x2]−[X3]。]
[0209] 中間結果は次のように計算できることに留意されたい。]
[0210] w0=f*x0−i*x4、
w1=g*x1−h*x3、
z2=g*x1+h*x3、
z4=f*x0+i*x4、
v1=2b*w1+2a*w0、
v2=z2+z4、
v3=2b*w0−2a*w1、
d2=(2c+2)*z2+(2c+2)*z4、
d4=(2c+2)*z4+2c*z2。]
[0211] したがって、出力は次のように表すことができる。]
[0212] X0=z2+z4+x2、
X1=v1−2*X0、
X2=d2−v1、
X3=v3−X2、
X4=−d4+2*x2−X3。]
[0213] したがって、このDCT−IV変換1602は、15回加算、11回乗算、および2回シフトのみを使用する。この変換における2因数は2進分数であり、したがって、そのような2で乗じる「乗算」は、2値シフト演算(すなわち、シフト)にすぎないことに留意されたい。この実装形態における最長経路長は5回演算のみである。]
[0214] 図17は、どのように図16のDCT−IV変換1602をさらにモディファイして等価変換1702にすることができるかを示すブロック図である。変換1702に関する出力係数は、以下によって特徴付けることができる。] 図16 図17
[0215] X0=(f*x0+i*x4)+(h*x3+g*x1)+x2、
X1=[2a*(f*x0−i*x4)+2b*(g*x1−h*x3)]−[2*X0]、
X2=[2(c+2)*(g*x1+h*x3)+(2c+2)*(f*x0+i*x4)]−[2a*(f*x0−i*x4)+2b*(g*x1−h*x3)]、
X3=[(2b+2a)*(f*x0−i*x4)−(2a−2b)*(g*x1−h*x3)]−[2(c+2)*(g*x1+h*x3)+(2c+2)*(f*x0+i*x4)]、
X4=[−(2c+2)*(f*x0+i*x4)−2c*(g*x1+h*x3)+2*x2]−[X3]。]
[0216] 中間結果は次のように計算できることに留意されたい。]
[0217] w0=f*x0−i*x4、
w1=g*x1−h*x3、
z2=g*x1+h*x3、
z4=f*x0+i*x4、
z1=2a*w0+2b*w1
z3=(2b+2a)*w0−(2a−2b)*w1、
d2=2(c+2)*z2+(2c+2)*z4、
d4=(2c+2)*z4+2c*z2。]
[0218] したがって、出力は次のように表すことができる。]
[0219] X0=z2+z4+x2、
X1=z1−2*X0、
X2=d2−z1、
X3=z3−d2、
X4=−d4+2*x2−X3。]
[0220] したがって、このDCT−IV変換1702は、15回加算、11回乗算、および2回シフトのみを使用する。この変換における「2」因数は2進分数であり、したがって、そのような2で乗じる「乗算」は、2値シフト演算(すなわち、シフト)にすぎないことに留意されたい。この実装形態における最長経路長は5回演算のみである。]
[0221] 図18は、どのように図17のDCT−IV変換1702をさらにモディファイして等価変換1802にすることができるかを示すブロック図である。この例では、最終段における再帰的加算の除去により、はるかに短くなった経路長および改善された数値安定度が達成される。変換1802に関する出力係数は、以下によって特徴付けることができる。] 図17 図18
[0222] X0=(f*x0+i*x4)+(h*x3+g*x1)+x2、
X1=[2a*(f*x0−i*x4)+2b*(g*x1−h*x3)]−[2*X0]、
X2=[2(c+2)*(g*x1+h*x3)+(2c+2)*(f*x0+i*x4)]−[2a*(f*x0−i*x4)+2b*(g*x1−h*x3)]、
X3=[(2b+2a)*(f*x0−i*x4)−(2a−2b)*(g*x1−h*x3)]−[2(c+2)*(g*x1+h*x3)+(2c+2)*(f*x0+i*x4)]、
X4=[−4(c+1)*(f*x0+i*x4)−4(c+1)*(g*x1+h*x3)+2*x2]−[(2b+2a)*(f*x0−i*x4)−(2a−2b)*(g*x1−h*x3)]。]
[0223] 中間結果は次のように計算できることに留意されたい。]
[0224] w0=f*x0−i*x4、
w1=g*x1−h*x3、
z2=g*x1+h*x3、
z4=f*x0+i*x4、
z1=2a*w0+2b*w1
z3=(2b+2a)*w0−(2a−2b)*w1、
r2=(2c+2)*z2+(2c+2)*z4、
r4=4(c+1)*z2+4(c+1)*z4。]
[0225] したがって、出力は次のように表すことができる。]
[0226] X0=z2+z4+x2、
X1=z1−2*X0、
X2=d2−z1、
X3=z3−r2、
X4=−r4+2*x2−z3。]
[0227] この変換1802は、15回加算、12回乗算、および2回シフトのみを使用する。「2」で乗じる乗算は、シフトであると考えられることに留意されたい。この実装形態における最長経路長は5回演算のみである。]
[0228] 図5〜図18に示すDCTおよびDST変換は、それらの図におけるDCTおよびDST変換演算を元に戻すまたは逆算するためのIDCTおよびIDST変換として可逆的とすることができることに留意されたい。] 図10 図11 図12 図13 図14 図15 図16 図17 図18 図5
[0229] サイズN=5*2Kの変換の計算
一実装形態によれば、N=5*2KであるNサイズ変換は、DCT−II、DCT−IV、DST−IV、または同様の核に基づくことができる、一連のより小さいN/2サイズ変換に再帰的に分割することができ、最後の5点カスケードは、5点変換を計算するための記載の高速アルゴリズムのうちの1つを使用することによって実装する。]
[0230] 図19は、Nサイズ変換が複数の5点変換によって表されるまで、どのようにNサイズ変換をより小さいN/2サイズ変換に再帰的に分割することができるかを示すブロック図である。たとえば、Nサイズ(点)変換1902は、N個の入力係数1910を受信し、それらをN個の出力係数1912に変換する。Nサイズ変換1902は、2つのN/2サイズ変換1904aおよび1904bにデシメートすることができる。同様に、各N/2サイズ変換1904aおよび1904bは、最小の変換が5点変換1906a、1906b、1908a、および1908bになるまで、複数のより小さい変換にさらにデシメートすることができる。様々な実装形態では、5点変換1906a、1906b、1908a、および1908bは、図5〜図18に示す5点変換のうちのいずれかによって実装することができる。] 図10 図11 図12 図13 図14 図15 図16 図17 図18 図19
[0231] 図20は、10点DCT−IV変換を複数のより小さい5点DCT−II変換2004aおよび2004bに再帰的に分割する、変換デシメーションおよび分割の一例を示すブロック図である。この例では、10個の入力係数2006が、1対のより小さい5点変換2004aおよび2004bによって変換され、10個の出力係数2008が生成される。] 図20
[0232] 図28は、10点DCT−IV変換を複数のより小さい5点DCT−II変換2804aおよび2804bに再帰的に分割する、変換デシメーションおよび分割の代替例を示す図である。この例では、10個の入力係数2806が、1対のより小さい5点変換2804aおよび2804bによって変換され、10個の出力係数2808が生成される。図20と比較して、DCT−IVのためのこの代替デシメーションプロセスは、より多くの演算を必要とするが、数値的によりロバストである。すなわち、方式図20において変換2004bの後に減算のシーケンスを実行することは、中間変数の大きさを、Nが変換のサイズであるN/2だけ潜在的に増大させることがある。図28の代替方式は、そのような実行を有さず、(正規直交演算である)平面回転のみを使用して、変換を計算する。DCT−IIのための分割プロシージャも、そのような性質を有する。また、分割プロセスにおいて、最終のアルゴリズムが変換タイプを再帰的に交互にすることができることに留意されたい。すなわち、分割プロセスは、DCT−IIをDCT−IIおよびDCT−IVまたは半分のサイズに分割することができ、次いで、DCT−IVを2つのDCT−IIに分割し、一方、複数のDCT−IIをより小さいDCT−IIおよびDCT−IVにさらに分割する、などである。] 図20 図28
[0233] 図29は、図28の変換の逆である10点IDCT−IV変換を示している。] 図28 図29
[0234] 図21は、Nサイズ逆変換が複数の5点逆変換によって表されるまで、どのようにNサイズ逆変換をより小さいN/2サイズ逆変換に再帰的に分割することができるかを示すブロック図である。たとえば、Nサイズ(点)逆変換2102は、N個の入力係数2110を受信し、それらをN個の出力係数2112に変換する。Nサイズ逆変換2102は、2つのN/2サイズ逆変換2104aおよび2104bにデシメートすることができる。同様に、各N/2サイズ逆変換2104aおよび2104bは、最小の逆変換が5点逆変換2106a、2106b、2108a、および2108bになるまで、複数のより小さい逆変換にさらにデシメートすることができる。様々な実装形態では、5点逆変換2106a、2106b、2108a、および2108bは、図5〜図18に示す変換に対応するいずれかの5点逆変換によって実装することができる。] 図10 図11 図12 図13 図14 図15 図16 図17 図18 図21
[0235] 図22は、10点IDCT−IV逆変換2202を複数のより小さい5点IDCT−II逆変換2204aおよび2204bに再帰的に分割する、逆変換デシメーションおよび分割の一例を示すブロック図である。この例では、10個の入力係数2206が、1対のより小さい5点逆変換2204aおよび2204bによって変換され、10個の出力係数2208が生成される。] 図22
[0236] 図30は、10点DCT−IV逆変換を複数のより小さい5点DCT−II変換および5点DCT−IVに再帰的に分割する、変換デシメーションおよび分割の一例を示すブロック図である。] 図30
[0237] 図30は、10点DCT−IV逆変換を複数のより小さい5点DCT−II変換および5点DCT−IVに再帰的に分割する、変換デシメーションおよび分割の一例を示すブロック図である。] 図30
[0238] 図31は、図30の順変換に対する逆変換の一例を示すブロック図である。] 図30 図31
[0239] 非対称ウィンドウイング段をもつMDCTフィルタバンク
別の特徴によれば、MDCTフィルタバンクの一部として非対称ウィンドウイング段を実装することができる。適用例によっては、MDCTフィルタバンクは、複数の層を有するスケーラブルなスピーチコーデックで実装することができ、いくつかのそのような層は、MDCTを使用して、前の層からの誤差信号を変換することができる。40ミリ秒ウィンドウイング段を用いた重み付き誤差信号werr_sp(k)のMDCTは、以下によって与えられる。]
[0240] 図23は、同数の周波数係数を保ちながら、変換段に関連する遅延を10msに低減するために使用することができる非対称ウィンドウ形状を示している。そのような非対称ウィンドウ関数において最初の80の因数が0になることにより、遅延の低減が可能になる。したがって、それらのサンプルにアクセスする必要はない。] 図23
[0241] 従来のMDCTウィンドウとは反対に、このウィンドウ2302は対称的でなく、したがって、ウィンドウの第2のハーフは第1のハーフの時間反転バージョンとは異なる。分析非対称ウィンドウ形状は、以下の式によって与えられる。]
[0242] 上式で、]
[0243] および、D(n)は以下によって定義され、]
[0244] 上式で、M=320はMDCT周波数成分の数を示し、Mz=M/4は後続のゼロの量である。]
[0245] MDCTのDCT−IVへのマッピングについての行列の説明
MDCTの係数werr_sp(k)の計算を行うには、まず、ウィンドウおよび正規化因数]
[0246] を入力信号werr(n)に適用し、次いで、M×2M行列Tによる積を計算し、]
[0247] 以下においてその分解を使用する。]
[0248] 上式で、]
[0249] は、DCT−IV変換のM×M行列であり、]
[0250] 上式で、IN/2およびJN/2は、対応して、N/2×N/2の単位行列および順序反転行列を示す。]
[0251] DCT−IVの計算
サイズM=5*2k(k=1、...、6)のDCT−IVの計算は、DCT−IVを2分の1サイズのDCT−II変換に分割することによって行われる。]
[0252] 上式で、
PMは、再配列を生成する置換行列であり、]
[0253] DMは対角交代符号行列であり、]
[0254] RMはギブンス回転行列であり、]
[0255] は、残りのDCT−II変換の行列を示す。]
[0256] サイズM=10のDCT−IV変換を、2分の1(M=5)のDCT−II変換に分割する、そのようなプロセスの例示的な実装形態を図20に示す。] 図20
[0257] サイズM=5*2k(k=1、...、5)のDCT−II変換の計算も、DCT−II変換をより小さい変換に分割することによって行うことができる。]
[0258] サイズM=10のDCT−II変換を、より小さい変換(M=5)に分割する、そのようなプロセスの例示的な実装形態を図30に示す。] 図30
[0259] 5点変換のみが残るまで、上記のプロセスを再帰的に繰り返すことができる。残りの5点変換は、以下によって効率的に実装することができる。]
[0260] DCT−IIによって5点DCT−IVの計算を次のように行う。]
[0261] 最後に、入力ベクトルx=[x0,x1,x2,x3,x4]Tに対して、5点DCT−IIの計算]
[0262] は次のように行われる。]
[0263] DCT−II変換802は、以下のようになる中間結果を含むことができる。]
[0264] a0=x0+x4、
a4=x4−x0、
a3=x3−x1、
a1=x3+x1、
b0=a0+a1、
b1=δ(a0−a1)、
b2=x2−αb0、
y0=b0+x2、
y1=γa3−βa4、
y2=b1−b2、
y3=βa3+γa4、
上式で、]
[0265] この変換に関するフローグラフの一例を図8に示す。] 図8
[0266] MDCT変換を使用した符号化の例
図24は、変換値を計算するためのデバイスを示すブロック図である。デバイス2402は、入力モジュール2406、ウィンドウモジュール2410、および/または変換モジュール2414を含むことができる。入力モジュール2406は、オーディオ信号2404を受信し、そのオーディオ信号を表す時間領域入力値2408を与えるように適合することができる。ウィンドウモジュール2410は、図23に示すような非対称ウィンドウイング関数を生成することができる。] 図23 図24
[0267] 変換モジュール2414は、たとえば、モディファイド離散コサイン変換(MDCT)を使用して、ウィンドウイングされた(windowed)入力値2412をスペクトル係数2416に変換することができる。MDCTは、各々の寸法がMDCTよりも小さい、離散コサイン変換タイプIV(DCT−IV)、離散コサイン変換タイプII(DCT−II)、またはDCT−IVとDCT−IIとの両方のうちの少なくとも1つに再帰的に分割することができる。一例では、DCT−IIは、異なるサイズのMDCTを実装する5点変換とすることができる。MDCTは、同じコアDCT−IIを使用して、320、160、80、40点変換のうちの少なくとも2つを実装することができる。デバイス2402の構成要素は、ハードウェア、ソフトウェアおよび/またはそれらの組合せとして実装することができる。たとえば、デバイス2402は、その構成要素またはモジュールの機能を実装するプロセッサおよび/または回路とすることができる。]
[0268] 図25は、5点コア変換に基づくMDCT変換を使用して信号を符号化するための方法の一例を示している。2502において、オーディオ信号を表す時間領域入力値を受信することができる。たとえば、アナログオーディオ信号(たとえば、ボイス信号、ミュージック、ビデオなど)をサンプリングして、入力値を得ることができる。一例では、2504において、非対称ウィンドウ関数を入力値に適用するモディファイドウィンドウイング関数を生成することができる。次いで、複数の5点変換に再帰的に分割されるモディファイド離散コサイン変換(MDCT)を使用して、(ウィンドウイングされた)入力値をスペクトル係数に変換することができる。たとえば、図5〜図22に示す5点変換のうちのいずれかを使用することができる。] 図10 図11 図12 図13 図14 図15 図16 図17 図18 図19
[0269] IMDCT変換を使用した復号の例
図26は、変換値を計算するためのデバイスを示すブロック図である。デバイス2602は、入力モジュール2606、逆変換モジュール2608、および/またはウィンドウモジュール2612を含むことができる。逆変換モジュール2608は、スペクトル係数2604を出力値2610に変換するように適合することができる。たとえば、逆変換モジュールは、各々の寸法が逆モディファイド離散コサイン変換(IMDCT)よりも小さい、逆離散コサイン変換タイプIV(IDCT−IV)、逆離散コサイン変換タイプII(IDCT−II)、またはIDCT−IVとIDCT−IIとの両方のうちの少なくとも1つに再帰的に分割されるIMDCTを使用して、スペクトル係数を時間領域出力値2610に変換することができる。] 図26
[0270] ウィンドウモジュール2612は、出力値2610に対して非対称ウィンドウ関数を実装するモディファイドウィンドウイング関数を生成し、ウィンドウイングされた(windowed)出力値2614を生成することができる。デバイス2602の構成要素は、ハードウェア、ソフトウェアおよび/またはそれらの組合せとして実装することができる。たとえば、デバイス2602は、その構成要素またはモジュールの機能を実装するプロセッサおよび/または回路とすることができる。]
[0271] 図27は、コアIDCT−II変換に基づくIMDCT変換を使用して信号を復号するための方法の一例を示している。2702において、オーディオ信号を表すスペクトル係数を受信するまたは得る。2704において、複数の5点逆変換に再帰的に分割される逆モディファイド離散コサイン変換(IMDCT)を使用して、スペクトル係数を時間領域出力値に変換することができる。複数の5点逆変換の各々は、同じコア変換を使用して実装することができる。IMDCTは、同じコア変換を使用して、320、160、80、40点逆変換のうちの少なくとも2つを実装する。様々な実装形態では、コア変換は、図5〜図22における5点変換のうちのいずれか1つとすることができる。さらに、2706において、非対称ウィンドウイング関数を変換されたスペクトル係数に適用するモディファイドウィンドウイング関数を生成することができる。] 図10 図11 図12 図13 図14 図15 図16 図17 図18 図19
[0272] 本明細書で提供する例に加えて、デシメートされた変換を実装する本明細書で説明するアルゴリズムは、2の倍数である任意の他の変換を実装するために使用することができる。さらに、本明細書で説明する技法は、オーディオ、ボイス、ビデオ、データなどを含む様々なタイプの信号に適用できることに留意されたい。]
[0273] 本明細書に示す変換に関する中間結果は、その変換の流れ図中で異なる点が選択された場合、変化することがあることを理解されたい。したがって、本明細書で説明し、請求する変換の流れ図の範囲内で、(たとえば、流れ図中の異なる点において)より大きいもしくはより小さい中間結果、および/または異なる中間結果が企図される。]
[0274] 情報および信号は、様々な異なる技術および技法のうちのいずれかを使用して表すことができる。たとえば、上記の説明全体にわたって言及されるデータ、命令、コマンド、情報、信号などは、電圧、電流、電磁波、磁界もしくは磁性粒子、光場もしくは光粒子、またはそれらの任意の組合せによって表すことができる。]
[0275] 本明細書で説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、ソフトウェア、または両方の組合せとして実装または実施することができる。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。構成を、フローチャート、流れ図、構造図、またはブロック図として示されるプロセスとして説明することがあることに留意されたい。フローチャートは動作を逐次プロセスとして説明することがあるが、動作の多くは並行してまたは同時に実行できる。さらに、動作の順序を並び替えることができる。プロセスは、その動作が完了すると終了する。プロセスは、メソッド、関数、プロシージャ、サブルーチン、サブプログラムなどに対応することができる。プロセスが関数に対応するとき、プロセスの終了は、関数が発呼側関数またはメイン関数に戻ることに対応する。]
[0276] ハードウェアに実装されるとき、様々な例は、本明細書で説明する機能を実行するように設計された、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ信号(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタロジック、個別ハードウェア構成要素、またはそれらの任意の組合せを採用することができる。汎用プロセッサはマイクロプロセッサとすることができるが、代替として、プロセッサは、従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械とすることができる。プロセッサは、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいはそのような任意の他の構成として実装することもできる。]
[0277] ソフトウェアに実装されるとき、様々な例は、ファームウェア、ミドルウェア、またはマイクロコードを採用することができる。必要なタスクを実行するためのプログラムコードまたはコードセグメントは、記憶媒体または(1つまたは複数の)他の記憶装置などのコンピュータ可読媒体中に記憶することができる。プロセッサは必要なタスクを実行することができる。コードセグメントは、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造もしくはプログラムステートメントの任意の組合せを表すことができる。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を引き渡すおよび/または受信することによって、別のコードセグメントまたはハードウェア回路に結合できる。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む適切な手段を介して引き渡す、転送する、または送信することができる。]
[0278] 本出願で使用する「構成要素」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアなど、コンピュータ関連のエンティティを指すものとする。たとえば、構成要素は、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータとすることができるが、これらに限定されない。例として、コンピューティングデバイス上で実行されるアプリケーションと、そのコンピューティングデバイスの両方を構成要素とすることができる。1つまたは複数の構成要素がプロセスおよび/または実行スレッド内に常駐することができ、1つの構成要素を1つのコンピュータ上に配置し、および/または2つ以上のコンピュータ間に分散することができる。さらに、これらの構成要素は、様々なデータ構造を記憶している様々なコンピュータ可読媒体から実行することができる。構成要素は、1つまたは複数のデータパケット(たとえば、ローカルシステム、分散システム中、および/または他のシステムを用いたインターネットなどのネットワークにわたって信号を介して別の構成要素と相互作用する1つの構成要素からのデータ)を有する信号によるなど、ローカルおよび/またはリモートプロセスを介して通信することができる。]
[0279] 本明細書における1つまたは複数の例、説明する機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装することができる。ソフトウェアで実装する場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶するか、あるいはコンピュータ可読媒体を介して送信することができる。コンピュータ可読媒体は、コンピュータ記憶媒体と、ある場所から別の場所へのコンピュータプログラムの転送を可能にするいかなる媒体をも含む通信媒体との両方を含む。記憶媒体は、コンピュータによってアクセスできる任意の利用可能な媒体でよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶装置、または、命令もしくはデータ構造の形態の所望のプログラムコードを運搬または記憶するために使用でき、コンピュータによってアクセスできる任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書では、ディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイ(登録商標)ディスク(disc)を含み、この場合、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)はデータをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。ソフトウェアは、単一の命令、または多数の命令を備えることができ、いくつかの異なるコードセグメント上で、異なるプログラム間で、および複数の記憶媒体にわたって分散できる。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合することができる。代替として、記憶媒体はプロセッサに一体化することができる。]
[0280] 本明細書で開示する方法は、記載の方法を達成するための1つまたは複数のステップまたは動作を備える。方法のステップおよび/または動作は、特許請求の範囲の範囲から逸脱することなく互いに交換することができる。すなわち、本明細書で説明している実施形態の適切な動作のためにステップまたは動作の特定の順序が必要とされない限り、特定のステップおよび/または動作の順序および/または使用は、特許請求の範囲の範囲を逸脱することなくモディファイすることができる。]
[0281] 図に示す構成要素、ステップ、および/または機能のうちの1つまたは複数は、単一の構成要素、ステップ、または機能に再構成し、および/または組み合わせることができ、あるいは、いくつかの構成要素、ステップ、もしくは機能で実施することができる。追加の要素、構成要素、ステップ、および/または機能を追加することもできる。いくつかの図に示す装置、デバイス、および/または構成要素は、他の図で説明する方法、特徴、またはステップのうちの1つまたは複数を実行するように構成または適合することができる。本明細書で説明するアルゴリズムは、たとえばソフトウェアおよび/または組込みハードウェアで効率的に実装することができる。]
[0282] 上記の構成は例にすぎず、特許請求の範囲を限定するものと解釈すべきではないことに留意されたい。構成についての説明は、例示的なものであり、特許請求の範囲の範囲を限定するものではない。したがって、本教示は、他のタイプの装置、ならびに多くの代替形態、修正あるいは変形形態、および変更形態に容易に適用できることが当業者には明らかであろう。]
权利要求:

請求項1
変換値を計算する方法であって、オーディオ信号を表す時間領域入力値を受信することと、複数の5点変換に再帰的にデシメートされるモディファイド離散コサイン変換(MDCT)を使用して、前記入力値をスペクトル係数に変換することを備える方法。
請求項2
前記複数の5点変換のうちの少なくとも1つが、12回加算演算、8回乗算演算、および3回演算の最長経路長によって因数分解される、少なくとも1つの離散コサイン変換タイプII(DCT−II)(502)を含む、請求項1に記載の方法。
請求項3
前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(502)を含み、w0=x0−x4、w4=x0+x4、w1=x1−x3、w3=x1+x3、u2=x2+w3+w4、u3=−d*w3+c*w4、u4=d*w4+c*w3、ここで、X0=u2、X1=b*w1+a*w0、X2=u3−x0、X3=a*w1−b*w0、X4=u4+x0、上式で、である、請求項1に記載の方法。
請求項4
前記複数の5点変換のうちの少なくとも1つが、12回加算演算、5回乗算演算、2回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの離散コサイン変換タイプII(DCT−II)(602)を含む、請求項1に記載の方法。
請求項5
前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(602)を含み、w0=x0−x4、w1=x1−x3、z2=x1+x3、z4=x0+x4、u2=z2+z4、ここで、X0=u2+x2、X1=b*w1+a*w0、X2=c*u2+0.5*z2−x2、X3=a*w1−b*w0、X4==−c*u2−0.5*z4+x2、上式で、である、請求項1に記載の方法。
請求項6
前記複数の5点変換のうちの少なくとも1つが、12回加算演算、5回乗算演算、1回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの離散コサイン変換タイプII(DCT−II)(702)を含む、請求項1に記載の方法。
請求項7
前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、以下の中間結果を有することによって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(702)を含み、w0=x0−x4、w1=x1−x3、z2=x1+x3、z4=x0+x4、t2=z2+z4、t4=z2−z4、c’=c+0.25、ここで、X0=t2+x2、X1=b*w1+a*w0、X2=c’*t2−0.25*t4−x2=0.25*t4+c’*t2−x2)、X3=a*w1−b*w0、X4=−c’*t2−0.25*t4+x2=0.25*t4−(c’*t2−x2)、上式で、である、請求項1に記載の方法。
請求項8
前記複数の5点変換のうちの少なくとも1つが、12回加算演算、4回乗算演算、2回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの離散コサイン変換タイプII(DCT−II)(802)を含む、請求項1に記載の方法。
請求項9
前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(802)を含み、w1=x0+x4、w2=x4−x0、w3=x3−x1、w4=x3+x1、w5=w1+w4、w6=w4−w1、u1=x2−αw5、u2=x2+w5、u3=βw2+γw3、u4=βw3−γw2、u5=δw6、ここで、X0=u2、X1=u4、X2=u4−u1、X3=u3、X4=u1+u5、上式で、である、請求項1に記載の方法。
請求項10
前記複数の5点変換のうちの少なくとも1つが、12回加算演算、5回乗算演算、1回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの変換(802)を含む、請求項1に記載の方法。
請求項11
前記複数の5点変換のうちの少なくとも1つが、20回加算演算、16回乗算演算、および3回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(902)を含む、請求項1に記載の方法。
請求項12
前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(902)を含み、k1=g*x1+h*x3、k2=h*x1+g*x3、k3=f*x0+i*x4、k4=i*x0+f*x4、k5=i*x1−f*x3、k6=−f*x1+i*x3、k7=g*x0−h*x4、k8=h*x0−g*x4、j1=x0+x4、j2=x3−x1、ここで、X0=k3+k1+x2、X1=k7+k5−x2、X2=j1+j2−x2、X3=h*x0−g*x4−f*x1+i*x3+x2、X4=k4−k2+x2、上式で、である、請求項1に記載の方法。
請求項13
前記複数の5点変換のうちの少なくとも1つが、20回加算演算、12回乗算演算、および4回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(1002)を含む、請求項1に記載の方法。
請求項14
前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1002)を含み、q1=x0+x4、q2=x3−x1、p1=(x1−x3)*g−x1*(g+h)=q2*g−x1*(g+h)、p2=(x1−x3)*g+x3*(h+g)=q2*g+x3*(g+h)、p3=(x0+x4)*f+x0*(i−f)=q1*f+x0*(i−f)、p4=(x0+x4)*f+x4*(i−f)=q1*f+x4*(i−f)、p5=(x3−x1)*f+x3*(i−f)=q2*f+x3*(i−f)、p6=(x3−x1)*f−x1*(i−f)=q2*f−x1*(i−f)、p7=(x0+x4)*g+x0*(h+g)=q1*g+x0*(h+g)、p8=(x0+x4)*g+x4*(h+g)=q1*g+x4*(h+g)、ここで、X0=p2+p4+x2、X1=p5+p7−x2、X2=q1+q2−x2、X3=p6+p8+x2、X4=p1+p3+x2、上式で、である、請求項1に記載の方法。
請求項15
前記複数の5点変換のうちの少なくとも1つが、16回加算演算、9回乗算演算、および5回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(1402)を含む、請求項1に記載の方法。
請求項16
前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1402)を含み、w0=f*x0−i*x4、w1=g*x1−h*x3、z2=g*x1+h*x3、z4=f*x0+i*x4、v1=2b*w1+2a*w0、v2=z2+z4、v3=2b*w0−2a*w1、y2=2c*v2+z2−2*x2、y4=−2c*v2−z4+2*x2、ここで、X0=v2+x2、X1=v1−2*X0、X2=y2−X1、X3=v3−X2、X4=y4−X3、上式で、であり、である、請求項1に記載の方法。
請求項17
前記複数の5点変換のうちの少なくとも1つが、15回加算演算、10回乗算演算、2回シフト演算、および5回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(1502)を含む、請求項1に記載の方法。
請求項18
前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1502)を含み、w0=f*x0−i*x4、w1=g*x1−h*x3、z2=g*x1+h*x3、z4=f*x0+i*x4、v1=2b*w1+2a*w0、v2=z2+z4、v3=2b*w0−2a*w1、y2=(2c+2)*v2+z2、y4=2c*v2+z4、ここで、X0=v2+x2、X1=v1−2*X0、X2=y2−v1、X3=v3−X2、X4=−y4+2*x2−X3、上式で、であり、である、請求項1に記載の方法。
請求項19
前記複数の5点変換のうちの少なくとも1つが、15回加算演算、11回乗算演算、2回シフト演算、および5回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(1602/1702)を含む、請求項1に記載の方法。
請求項20
前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1602)を含み、w0=f*x0−i*x4、w1=g*x1−h*x3、z2=g*x1+h*x3、z4=f*x0+i*x4、v1=2b*w1+2a*w0、v2=z2+z4、v3=2b*w0−2a*w1、d2=(2c+2)*z2+(2c+2)*z4、d4=(2c+2)*z4+2c*z2、ここで、X0=z2+z4+x2、X1=v1−2*X0、X2=d2−v1、X3=v3−X2、X4=−d4+2*x2−X3、上式で、であり、である、請求項1に記載の方法。
請求項21
前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1702)を含み、w0=f*x0−i*x4、w1=g*x1−h*x3、z2=g*x1+h*x3、z4=f*x0+i*x4、z1=2a*w0+2b*w1z3=(2b+2a)*w0−(2a−2b)*w1、d2=2(c+2)*z2+(2c+2)*z4、d4=(2c+2)*z4+2c*z2、ここで、X0=z2+z4+x2、X1=z1−2*X0、X2=d2−z1、X3=z3−d2、X4=−d4+2*x2−X3、上式で、であり、である、請求項1に記載の方法。
請求項22
前記複数の5点変換のうちの少なくとも1つが、15回加算演算、12回乗算演算、2回シフト演算、および5回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(1802)を含む、請求項1に記載の方法。
請求項23
前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、以下の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1802)を含み、w0=f*x0−i*x4、w1=g*x1−h*x3、z2=g*x1+h*x3、z4=f*x0+i*x4、z1=2a*w0+2b*w1z3=(2b+2a)*w0−(2a−2b)*w1、r2=(2c+2)*z2+(2c+2)*z4、r4=4(c+1)*z2+4(c+1)*z4、ここで、X0=z2+z4+x2、X1=z1−2*X0、X2=d2−z1、X3=z3−r2、X4=−r4+2*x2−z3、上式で、であり、である、請求項1に記載の方法。
請求項24
前記変換を実行する前に前記入力値に対してウィンドウイング演算を実行することをさらに備え、前記ウィンドウイング演算が非対称ウィンドウ関数を実装する請求項1に記載の方法。
請求項25
前記MDCTが、5点離散コサイン変換タイプIIを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装する、請求項1に記載の方法。
請求項26
前記MDCTが、5点離散コサイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装する、請求項1に記載の方法。
請求項27
前記MDCTが、5点離散コサイン変換タイプIIおよび5点離散コサイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装する、請求項1に記載の方法。
請求項28
前記MDCTが、5点離散サイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装する、請求項1に記載の方法。
請求項29
スケーラブルなスピーチおよびオーディオエンコーダデバイスであって、オーディオ信号を表す時間領域入力値を得ることと、複数の5点変換に再帰的にデシメートされるモディファイド離散コサイン変換(MDCT)を使用して、前記入力値をスペクトル係数に変換することを行うように適合された離散コサイン変換(DCT)タイプ変換層モジュールを備えるデバイス。
請求項30
前記複数の5点変換のうちの少なくとも1つが、12回加算演算、4回乗算演算、2回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの離散コサイン変換タイプII(DCT−II)(802)を含む、請求項29に記載のデバイス。
請求項31
前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(802)を含み、w1=x0+x4、w2=x4−x0、w3=x3−x1、w4=x3+x1、w5=w1+w4、w6=w4−w1、u1=x2−αw5、u2=x2+w5、u3=βw2+γw3、u4=βw3−γw2、u5=δw6、ここで、X0=u2、X1=u4、X2=u4−u1、X3=u3、X4=u1+u5、上式で、である、請求項29に記載のデバイス。
請求項32
前記複数の5点変換のうちの少なくとも1つが、12回加算演算、5回乗算演算、1回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの変換(802)を含む、請求項29に記載のデバイス。
請求項33
スケーラブルなスピーチおよびオーディオエンコーダデバイスであって、オーディオ信号を表す時間領域入力値を得る手段と、複数の5点変換に再帰的にデシメートされるモディファイド離散コサイン変換(MDCT)を使用して、前記入力値をスペクトル係数に変換する手段とを備えるデバイス。
請求項34
前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(802)を含み、w1=x0+x4、w2=x4−x0、w3=x3−x1、w4=x3+x1、w5=w1+w4、w6=w4−w1、u1=x2−αw5、u2=x2+w5、u3=βw2+γw3、u4=βw3−γw2、u5=δw6、ここで、X0=u2、X1=u4、X2=u4−u1、X3=u3、X4=u1+u5、上式で、である、請求項33に記載のデバイス。
請求項35
オーディオ信号を表す時間領域入力値を得ることと、複数の5点変換に再帰的にデシメートされるモディファイド離散コサイン変換(MDCT)を使用して、前記入力値をスペクトル係数に変換することを行うように適合されたスケーラブルなスピーチおよびオーディオ符号化回路を含むプロセッサであって、前記複数の5点変換うちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(802)を含み、w1=x0+x4、w2=x4−x0、w3=x3−x1、w4=x3+x1、w5=w1+w4、w6=w4−w1、u1=x2−αw5、u2=x2+w5、u3=βw2+γw3、u4=βw3−γw2、u5=δw6、ここで、X0=u2、X1=u4、X2=u4−u1、X3=u3、X4=u1+u5、上式で、である、プロセッサ。
請求項36
スケーラブルなスピーチおよびオーディオ符号化のために動作可能な命令を備える機械可読媒体であって、前記命令が、1つまたは複数のプロセッサによって実行されたときに、オーディオ信号を表す時間領域入力値を得ることと、複数の5点変換に再帰的にデシメートされるモディファイド離散コサイン変換(MDCT)を使用して、前記入力値をスペクトル係数に変換することを前記プロセッサに行わせ、前記複数の5点変換うちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(802)を含み、w1=x0+x4、w2=x4−x0、w3=x3−x1、w4=x3+x1、w5=w1+w4、w6=w4−w1、u1=x2−αw5、u2=x2+w5、u3=βw2+γw3、u4=βw3−γw2、u5=δw6、ここで、X0=u2、X1=u4、X2=u4−u1、X3=u3、X4=u1+u5、上式で、である、機械可読媒体。
請求項37
逆変換値を計算する方法であって、オーディオ信号を表すスペクトル係数入力値を受信することと、複数の5点逆変換に再帰的にデシメートされる逆モディファイド離散コサイン変換(IMDCT)を使用して、前記スペクトル係数入力値を時間領域出力値に変換することを備える方法。
請求項38
前記複数の5点逆変換のうちの少なくとも1つが、12回加算演算、4回乗算演算、2回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの逆離散コサイン変換タイプII(DCT−II)(3202)を含む、請求項37に記載の方法。
請求項39
前記複数の5点逆変換のうちの少なくとも1つが、入力ベクトル[X0,X1,X2,X3,X4]をとって出力ベクトル[x0,x1,x2,x3,x4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの逆離散コサイン変換タイプII(IDCT−II)(3202)を含み、u1=X4−X2、u5=X4+X2、w0=X0+u1、w5=X0−αu1、w2=βX3−γX1、w3=γX3−βX1、w6=δu5、w1=w5−w6、w4=w5+w6、ここで、x0=w1−w2、x1=w4+w3、x2=w0、x3=w4−w3、x4=w1+w2、上式で、である、請求項37に記載の方法。
請求項40
前記逆変換を実行した後に前記入力値に対してウィンドウイング演算を実行することをさらに備え、前記ウィンドウイング演算が非対称ウィンドウ関数を実装する請求項37に記載の方法。
請求項41
前記IMDCTが、5点逆離散コサイン変換タイプIIを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装する、請求項37に記載の方法。
請求項42
前記IMDCTが、5点逆離散コサイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装する、請求項37に記載の方法。
請求項43
前記IMDCTが、5点逆離散コサイン変換タイプIIおよび5点逆離散コサイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装する、請求項37に記載の方法。
請求項44
前記IMDCTが、5点逆離散サイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装する、請求項37に記載の方法。
請求項45
スケーラブルなスピーチおよびオーディオデコーダデバイスであって、オーディオ信号を表すスペクトル係数入力値を受信することと、複数の5点逆変換に再帰的にデシメートされる逆モディファイド離散コサイン変換(IMDCT)を使用して、前記スペクトル係数入力値を時間領域出力値に変換することを行うように適合された逆離散コサイン変換(DCT)タイプ変換層モジュールを備えるデバイス。
請求項46
前記複数の5点逆変換のうちの少なくとも1つが、12回加算演算、4回乗算演算、2回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの逆離散コサイン変換タイプII(DCT−II)(3202)を含む、請求項45に記載のデバイス。
請求項47
前記複数の5点逆変換のうちの少なくとも1つが、入力ベクトル[X0,X1,X2,X3,X4]をとって出力ベクトル[x0,x1,x2,x3,x4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの逆離散コサイン変換タイプII(IDCT−II)(3202)を含み、u1=X4−X2、u5=X4+X2、w0=X0+u1、w5=X0−αu1、w2=βX3−γX1、w3=γX3−βX1、w6=δu5、w1=w5−w6、w4=w5+w6、ここで、x0=w1−w2、x1=w4+w3、x2=w0、x3=w4−w3、x4=w1+w2、上式で、である、請求項45に記載のデバイス。
請求項48
スケーラブルなスピーチおよびオーディオデコーダデバイスであって、オーディオ信号を表すスペクトル係数入力値を受信する手段と、複数の5点逆変換に再帰的にデシメートされる逆モディファイド離散コサイン変換(IMDCT)を使用して、前記スペクトル係数入力値を時間領域出力値に変換する手段を備えるデバイス。
請求項49
前記複数の5点逆変換のうちの少なくとも1つが、12回加算演算、4回乗算演算、2回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの逆離散コサイン変換タイプII(DCT−II)(3202)を含む、請求項48に記載のデバイス。
請求項50
前記複数の5点逆変換のうちの少なくとも1つが、入力ベクトル[X0,X1,X2,X3,X4]をとって出力ベクトル[x0,x1,x2,x3,x4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの逆離散コサイン変換タイプII(IDCT−II)(3202)を含み、u1=X4−X2、u5=X4+X2、w0=X0+u1、w5=X0−αu1、w2=βX3−γX1、w3=γX3−βX1、w6=δu5、w1=w5−w6、w4=w5+w6、ここで、x0=w1−w2、x1=w4+w3、x2=w0、x3=w4−w3、x4=w1+w2、上式で、である、請求項48に記載のデバイス。
請求項51
オーディオ信号を表すスペクトル係数入力値を受信することと、複数の5点逆変換に再帰的にデシメートされる逆モディファイド離散コサイン変換(IMDCT)を使用して、前記スペクトル係数入力値を時間領域出力値に変換することを行うように適合されたスケーラブルなスピーチおよびオーディオ復号回路を含むプロセッサであって、前記複数の5点逆変換のうちの少なくとも1つが、入力ベクトル[X0,X1,X2,X3,X4]をとって出力ベクトル[x0,x1,x2,x3,x4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの逆離散コサイン変換タイプII(IDCT−II)(3202)を含み、u1=X4−X2、u5=X4+X2、w0=X0+u1、w5=X0−αu1、w2=βX3−γX1、w3=γX3−βX1、w6=δu5、w1=w5−w6、w4=w5+w6、ここで、x0=w1−w2、x1=w4+w3、x2=w0、x3=w4−w3、x4=w1+w2、上式で、である、プロセッサ。
請求項52
スケーラブルなスピーチおよびオーディオ復号のために動作可能な命令を備える機械可読媒体であって、前記命令が、1つまたは複数のプロセッサによって実行されたときに、オーディオ信号を表すスペクトル係数入力値を受信することと、複数の5点逆変換に再帰的にデシメートされる逆モディファイド離散コサイン変換(IMDCT)を使用して、前記スペクトル係数入力値を時間領域出力値に変換することを前記プロセッサに行わせ、前記複数の5点逆変換のうちの少なくとも1つが、入力ベクトル[X0,X1,X2,X3,X4]をとって出力ベクトル[x0,x1,x2,x3,x4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの逆離散コサイン変換タイプII(IDCT−II)(3202)を含み、u1=X4−X2、u5=X4+X2、w0=X0+u1、w5=X0−αu1、w2=βX3−γX1、w3=γX3−βX1、w6=δu5、w1=w5−w6、w4=w5+w6、ここで、x0=w1−w2、x1=w4+w3、x2=w0、x3=w4−w3、x4=w1+w2、上式で、である、機械可読媒体。
类似技术:
公开号 | 公开日 | 专利标题
TWI681386B|2020-01-01|用於音場之高階保真立體音響表示的壓縮與解壓縮方法及裝置
US9398294B2|2016-07-19|Audio or video encoder, audio or video decoder and related methods for processing multi-channel audio or video signals using a variable prediction direction
EP2947656B1|2018-09-19|Coding multi-channel audio signals using complex prediction and differential coding
KR100957711B1|2010-05-12|오디오 서브밴드 값을 생성하는 장치 및 방법과 시간 영역 오디오 샘플을 생성하는 장치 및 방법
Oraintara et al.2002|Integer fast Fourier transform
EP2088583B1|2011-09-28|Adaptive hybrid transform for signal analysis and synthesis
JP2020144384A|2020-09-10|A method or device for compressing or decompressing a higher-order ambisonics signal representation
RU2591661C2|2016-07-20|Многорежимный декодировщик аудио сигнала, многорежимный кодировщик аудио сигналов, способы и компьютерные программы с использованием кодирования с линейным предсказанием на основе ограничения шума
JP5265682B2|2013-08-14|デジタルコンテンツの符号化および/または復号
KR101131757B1|2012-04-05|스케일링 인터페이스 및 넌-스케일링 인터페이스를 갖는 변환 디자인
CN1860527B|2010-04-14|一种处理具有离散值序列的信号的设备和方法
US7127482B2|2006-10-24|Performance optimized approach for efficient downsampling operations
JP4874642B2|2012-02-15|ロッシーおよびロスレス2dデータ圧縮のための可逆な変換
Liang et al.2001|Fast multiplierless approximations of the DCT with the lifting scheme
RU2420814C2|2011-06-10|Аудиодекодирование
KR101187597B1|2012-10-12|Encoding and Decoding Audio Signals Using Complex Value Filter Banks
US8589634B2|2013-11-19|Processor extensions for accelerating spectral band replication
EP2261897A1|2010-12-15|Quantization and inverse quantization for audio
JP5086274B2|2012-11-28|共通因数を用いる変換
US9037454B2|2015-05-19|Efficient coding of overcomplete representations of audio using the modulated complex lapped transform |
US7343287B2|2008-03-11|Method and apparatus for scalable encoding and method and apparatus for scalable decoding
CN1805547B|2012-07-04|用于高效无损数据压缩的可逆重叠算子
TWI343534B|2011-06-11|Method for transforming a digital signal from the time domain into the frequency domain and vice versa
Evangelista et al.1998|Discrete frequency warped wavelets: Theory and applications
CA2662910C|2015-12-15|Method and device for transcoding audio signals
同族专利:
公开号 | 公开日
EP2225755A1|2010-09-08|
CN101896966B|2012-11-21|
TWI405185B|2013-08-11|
US20090157785A1|2009-06-18|
WO2009076666A1|2009-06-18|
CA2706283A1|2009-06-18|
JP5269908B2|2013-08-21|
CN101896966A|2010-11-24|
KR101226094B1|2013-01-24|
US8631060B2|2014-01-14|
TW200947419A|2009-11-16|
IL205835D0|2010-11-30|
KR20100103580A|2010-09-27|
MX2010006471A|2010-09-28|
AU2008334935A1|2009-06-18|
BRPI0820703A2|2015-06-16|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2012-05-31| A977| Report on retrieval|Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120531 |
2012-06-13| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120612 |
2012-08-09| A601| Written request for extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120808 |
2012-08-16| A602| Written permission of extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120815 |
2012-11-13| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121112 |
2013-04-02| TRDD| Decision of grant or rejection written|
2013-04-10| A01| Written decision to grant a patent or to grant a registration (utility model)|Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130409 |
2013-05-16| A61| First payment of annual fees (during grant procedure)|Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130508 |
2013-05-17| R150| Certificate of patent or registration of utility model|Ref document number: 5269908 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
2016-05-10| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2017-05-16| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2018-05-08| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2019-05-14| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2020-04-30| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2021-04-30| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
优先权:
申请号 | 申请日 | 专利标题
[返回顶部]